﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//函数传址调用
//交换两个数
//指针来接受两个数的地址
//void swap(int* pa, int* pb)
//{
//	int temp = *pa;
//	*pa = *pb;
//	*pb = temp;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d%d", &a, &b);
//	swap(&a, &b);
//	printf("%d %d\n", a, b);
//	return 0;
//}
//数组名是首元素地址
//int main()
//{
//	int arr[10] = { 0 };
//	printf("%p\n", arr);
//	printf("%p\n", arr + 1);
//	printf("%p\n", &arr[0]);
//	printf("%p\n", &arr[0]+1);
//	//上面＋1跳过int 所占的4个字节
//	//arr=arr[0]
//	//&arr[0]+1=&arr[0]+1
//	printf("%p\n", &arr);
//	printf("%p\n", &arr+1);
//	//&arr+1跳过10个int 4个字节
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int* p = arr;
//	for (i = 0;i < sz;i++)
//	{
// 等价的
//		//scanf("%d", arr + i);
//		//scanf("%d", &arr[i]);
//		scanf("%d", p + i);
//	}
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", *(p + i));
//		printf("%d ", *(arr + i));
//	}
//	return 0;
//}
//一维数组传参
//void print(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	print(arr, sz);
//	return 0;
//}
//#include <stdio.h>
//指针变量的⼤⼩取决于地址的⼤⼩ 
//32位平台下地址是32个bit位（即4个字节） 
//64位平台下地址是64个bit位（即8个字节） 
//int main()
//{
//	printf("%zd\n", sizeof(char*));
//	printf("%zd\n", sizeof(short*));
//	printf("%zd\n", sizeof(int*));
//	printf("%zd\n", sizeof(double*));
//	return 0;
//}
//冒泡排序
//void bubble_sort(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0;i < sz - 1;i++)
//	{
//		//先确定第一个数，一直往后面比较
//		int j = 0;
//		//j用来判断每次比较几次，
//		for (j = i;j < sz - i - 1;j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int temp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = temp;
//			}
//		}
//	}
//}
//优化一下，有可能中途我们的大小顺序已经排好了，那后面我们不需要进行比较，直接推出循环就行
//void bubble_sort(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0;i < sz - 1;i++)
//	{
//		int flag = 1;//中途是否已经排序成功
//		//先确定最后一个数，一直往后面比较
//		int j = 0;
//		//j用来判断每次比较几次，
//		for (j = 0;j < sz - i - 1;j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				flag = 0;//有一个没有成功，还要进行排序
//				int temp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = temp;
//			}
//		}
//		if (flag == 1)
//		{
//			break;
//		}
//	}
//}
//#include<stdlib.h>
//#include<string.h>
//int cmp_int(const void* e1, const void* e2)
//{
//	//强制转化为int* 类型
//	//默认是升序
//	//排降序的话e1和e2调换位置
//	return (*(int*)e1 - *(int*)e2);
//}
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1,0};
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	/*bubble_sort(arr, sz);*/
//	qsort(arr, sz, sizeof(arr[0]), cmp_int);
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}
//指针模拟二维数组
//int main()
//{
//	int arr1[5] = { 1,2,3,4,5 };
//	int arr2[5] = { 2,3,4,5,6 };
//	int arr3[5] = { 4,5,6,7,8 };
//	//把三个一维数组的首元素地址放进一个指针数组中
//	int* arr[5] = { arr1,arr2,arr3 };
//	int i = 0;
//	for (i = 0;i < 3;i++)
//	{
//		int j = 0;
//		for (j = 0;j < 5;j++)
//		{
//			printf("%d ", *(arr[i] + j));
//			//printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//数组指针
//二维数组传参的时候穿的是第一行的地址
//void print(int(*p)[5], int r, int c)
//{
//	int i = 0;
//	int j = 0;
//	for (i = 0;i < r;i++)
//	{
//		for (j = 0;j < c;j++)
//		{
//			printf("%d ", *(*(p + i) + j));
//		}
//		printf("\n");
//	}
//}
//int main()
//{
//	int arr[3][5] = { 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6 };
//	print(arr, 3, 5);
//	return 0;
//}
//函数指针
//int add(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	printf("%p\n", add);
//	printf("%p\n", &add);
//	//数组名是地址，两个输出的地址一样，&可以省略
//	int (*p1)(int ,int) = add;
//	int (*p2)(int x, int y) = &add;
//	//x,y,&可以省略的前面的*解引用操作符也可以省略
//	printf("%d\n", (*p1)(2, 3));
//	printf("%d\n", p1(6, 3));
//	return 0;
//}
//一行，一个整数，表示所有三位整数中，有多少个质数。
//#include<math.h>
//int main()
//{
//    int i = 0;
//    int k = 0;
//    for (i = 101;i < 1000;i++)
//    {
//        int flag = 1;
//        int j = 0;
//        for (j = 2;j <= sqrt(i);j++)
//        {
//            if (i % j == 0)
//            {
//                flag = 0;
//                break;
//            }
//        }
//        if (flag)
//        {
//            k++;
//        }
//    }
//    printf("%d\n", k);
//    return 0;
//}
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 1;i <= 9;i++)
//	{
//		for (j = 1;j <= i;j++)
//		{
//			printf("%d*%d=%2d ", j, i, j * i);
//		}
//		printf("\n");
//	}
//	return 0;
//}1-2+3-4...+n的值
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int sum = 0;
//	int flag = 1;
//	for (i = 1;i <= n;i++)
//	{
//		sum += flag * i;
//		flag = -flag;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//1 + 1 / 2 + 1 / 3 + … + 1 / N的值
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	double sum = 0;
//	for (i = 1;i <= n;i++)
//	{
//		sum += 1.0 / i;
//	}
//	printf("%lf\n", sum);
//	return 0;
//}
//1 + 1 / （1 - 3） + 1 / （1 - 3 + 5） + ... + 1 / (1 - 3 + 5 - ...((-1) ^ (n - 1)) * (2n - 1))
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    double sum = 0;
//    int i = 0;
//    int s = 1;
//    int tmp = 0;
//    for (i = 1;i <= n;i++)
//    {
//        //先算出分母
//        tmp += s * (2 * i - 1);
//        //进行累加
//        sum += 1.0 / tmp;
//        s = -s;
//    }
//    printf("%.3lf\n", sum);
//    return 0;
//}
//1+（1+2）+（1+2+3）+...+(1+2+3+...+n)
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int ret = 0;
//	int sum = 0;
//	for (i = 1;i <= n;i++)
//	{
//		//ret放n的阶乘
//		ret += i;
//		sum += ret;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//求一个整数的所有数位之和
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	int sum = 0;
//	while (num)
//	{
//		sum += num % 10;
//		num /= 10;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//你一个正整数n，如果n为偶数，就将他变为n/2, 如果n为奇数，就将他变为乘3加1
//需要几步将其变成1
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int k = 0;//统计步数
//	while (n != 1)
//	{
//		if (n % 2 == 0)
//		{
//			n = n / 2;
//		}
//		else
//		{
//			n = n * 3 + 1;
//		}
//		k++;
//	}
//	printf("%d\n", k);
//	return 0;
//}
//1~2019中有多少个包含数字9的数
//int main()
//{
//	int i = 0;
//	int count = 0;
//	for (i = 1;i <= 2019;i++)
//	{
//		int n = i;
//		while (n!= 0)
//		{
//			if ((n % 10 == 9) || (n / 10 == 9))
//			{
//				count++;
//				break;
//			}
//			else
//			{
//				n /= 10;
//			}
//		}
//	}
//	printf("%d\n", count);
//	return 0;
//}
// 输入
//第一行，输入一个数n，代表小乐乐的班级中有n个同学。
//在接下来的n行中每行输入三个整数代表班级中一个同学的三科成绩（语文，数学，外语），用空格分隔
//平均分低于60不及格，输出不及格的人数
int main()
{
	int n = 0;
	scanf("%d", &n);
	int i = 0;
	int count = 0;
	for (i = 0;i < n;i++)
	{
		int chinese = 0;
		int math = 0;
		int english = 0;
		scanf("%d %d %d", &chinese, &math, &english);
		float sum = 0;
		sum = chinese + math + english;
		float ave = sum / 3.0;
		if (ave < 60)
		{
			count++;
		}
	}
	printf("%d\n", count);
}